package main

import "fmt"

// 结构体的继承 (结构体的嵌套，实现类似的继承)

type Animal struct {
	name string
}

func (a *Animal) move() {
	fmt.Printf("\n %s move move \n", a.name)
}

type Dog struct {
	feet int
	*Animal
}

func (d *Dog) Call() {
	fmt.Printf("\n %s wangwang\n", d.name)
}

func main() {
	d1 := &Dog{
		feet: 4,
		Animal: &Animal{
			name: "乐乐",
		},
	}
	d1.Call()
	d1.move()

	d2 := Dog{
		feet: 4,
		Animal: &Animal{
			name: "乐乐123",
		},
	}
	d2.Call()
	d2.move()
}
